// 简    述：
// 创建标志：
// 修改标志：

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "../../../Utils/MessageQueue/MsgBuf.h"
using namespace std ;


class PetStruct { 
public :
	public: uint32_t id ;
	public: uint32_t listLength ;
	private: uint32_t privateListLength ;
	private: string *privateList ;
	public: uint32_t listMaxLength() ;
	public: string* list() ;
	public: void malloclist( uint32_t length ) ;
	public: string name ;
private :
	static const uint16_t messageId ;
public :
	PetStruct() ;
	~PetStruct() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
	CMsgTyped* Unserialize( CMsgTyped *msgTyped ) ;
} ;

class BagStruct { 
public :
	public: uint32_t index ;
	public: uint32_t id ;
	public: uint32_t petLength ;
	private: uint32_t privatePetLength ;
	private: PetStruct *privatePet ;
	public: uint32_t petMaxLength() ;
	public: PetStruct* pet() ;
	public: void mallocpet( uint32_t length ) ;
	public: string name ;
private :
	static const uint16_t messageId ;
public :
	BagStruct() ;
	~BagStruct() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
	CMsgTyped* Unserialize( CMsgTyped *msgTyped ) ;
} ;

class GetInfo { 
public :
	public: uint32_t id ;
	public: PetStruct pet ;
	public: string name ;
	public: uint32_t bagLength ;
	private: uint32_t privateBagLength ;
	private: BagStruct *privateBag ;
	public: uint32_t bagMaxLength() ;
	public: BagStruct* bag() ;
	public: void mallocbag( uint32_t length ) ;
	public: uint32_t level ;
private :
	static const uint16_t messageId ;
public :
	GetInfo() ;
	~GetInfo() ;
	CMsgTyped* Unserialize( CMsgTyped *msgTyped ) ;
} ;

class SendInfo { 
public :
	public: uint32_t id ;
	public: PetStruct pet ;
	public: string name ;
	public: uint32_t bagLength ;
	private: uint32_t privateBagLength ;
	private: BagStruct *privateBag ;
	public: uint32_t bagMaxLength() ;
	public: BagStruct* bag() ;
	public: void mallocbag( uint32_t length ) ;
	public: uint32_t level ;
private :
	static const uint16_t messageId ;
public :
	SendInfo() ;
	~SendInfo() ;
	CMsgTyped* Serialize( CMsgTyped *msgTyped ) ;
} ;

